from auditlog.models import AuditlogHistoryField
from auditlog.registry import auditlog
from django.db import models
from django.utils import timezone


class Base(models.Model):
    create_at = models.DateTimeField(default=timezone.now)
    update_at = models.DateTimeField(auto_now=True)
    history = AuditlogHistoryField()

    class Meta:
        abstract = True


class Periods(models.Model):
    years = models.PositiveSmallIntegerField(blank=False, null=False, verbose_name="Год")
    months = models.PositiveSmallIntegerField(blank=False, null=False, verbose_name="Месяц")
    nmonth = models.CharField(blank=False, null=False, max_length=20, verbose_name="Название периода")
    dn_pl = models.DateField(blank=False, null=False, verbose_name="Платно. Дата начала периода")
    dk_pl = models.DateField(blank=False, null=False, verbose_name="Платно. Дата конца периода")
    dn_lg = models.DateField(blank=False, null=False, verbose_name="Льгота. Дата начала периода")
    dk_lg = models.DateField(blank=False, null=False, verbose_name="Льгота. Дата конца периода")

    class Meta:
        verbose_name = "Периоды отчетов"
        verbose_name_plural = "Периоды отчетов"
        unique_together = ("years", "months")

    def __str__(self) -> str:
        return f"{self.months}"


auditlog.register(Periods, serialize_data=True)
